package javaEE65_day03.StudentTeacherManger.controller.TeacherController;

import javaEE65_day03.StudentTeacherManger.domian.Teacher;
import javaEE65_day03.StudentTeacherManger.service.TeacherService;

import java.util.Scanner;

public class PublicController {
    //创建键盘录入对象
    private Scanner sc = new Scanner(System.in);
    //教师管理系统页面
    public void teacherManger() {
        while (true) {
            System.out.println("--------欢迎来到 <老师> 管理系统--------");
            System.out.println("请输入您的选择: 1.添加老师  2.删除老师  3.修改老师  4.查看老师  5.退出");
            String select = sc.next();
            switch (select) {
                case "1":
                    //System.out.println("添加老师");
                    addTeacher();
                    break;
                case "2":
                    System.out.println("删除老师");
                    deleteTeacherById();
                    break;
                case "3":
                    System.out.println("修改老师");
                    updateTeacher();
                    break;
                case "4":
                    System.out.println("查看老师");
                    findAllTeacher();
                    break;
                case "5":
                    System.out.println("谢谢使用");
                    return;
                default:
                    System.out.println("你输入的选择有误，请重新输入");
                    break;
            }
        }
    }
    //查看教师信息
    private void findAllTeacher() {
        //调用业务类中的findAllTeacher方法
        Teacher[] tea = TeacherService.findAllTeacher();
        //判断容器是否为空
        if (tea == null){
            System.out.println("暂无教师信息，请添加后再查看");
            return;
        }else {
            //打印教师信息
            System.out.println("工号\t\t姓名\t年龄\t生日");
            for (int i = 0; i < tea.length; i++) {
                Teacher teach = tea[i];
                if (teach != null){
                    System.out.println(tea[i]);
                }

            }
        }

    }
    //修改教师信息
    private void updateTeacher() {
        //调用本类中inputId方法获取用户输入存在的学号
        String id = inputId();
        //调用本类中inputInformation方法获得tea对象
        Teacher teacher = inputInformation(id);
        //将教师工号转递给业务类中的updateTeacher方法并获取反馈的结果
        boolean flog = TeacherService.updateTeacher(id,teacher);
        //调用本类中feedBack方法向用户反馈添加结果
        feedBack(flog);
    }
    //删除教师信息
    private void deleteTeacherById() {
        //调用本类中inputId方法接收用户输入存在的工号
        String id = inputId();
        //将工号传递给业务类中的deleteTeacherById方法并接收反馈的结果
        boolean flog = TeacherService.deleteTeacherById(id);
        //调用本类中feedBack方法向用户反馈删除结果
        feedBack(flog);
    }
    //判断用户输入的工号是否存在如果存在就将工号返回
    private String inputId() {
        String id;
        while (true){
            System.out.println("输入教师的工号");
            id = sc.next();
            //调用业务类中的isExists方法判断学号是否存在
            boolean flog = TeacherService.isExists(id);
            if (flog){
                return id;
            }else {
                System.out.println("你输入的工号不存在，请重新输入");
            }
        }
    }
    //添加教师信息
    private void addTeacher() {
        //调用本类中receivingNumber方法接收用户输入的工号并接收没有被占用的工号
        String id = receivingNumber();
        //调用本类中inputInformation方法录入教师信息
        Teacher tea = inputInformation(id);
        //将tea对象传递给业务类类中的addTeacher方法并接收业务类反馈的结果
        boolean flog = TeacherService.addTeacher(tea);
        //调用本类中feedBack方法向用户反馈添加结果
        feedBack(flog);
    }
    //判断返回的结果
    private void feedBack(boolean flog) {
        if (flog){
            System.out.println("操作成功");
        }else{
            System.out.println("操作失败");
        }
    }
    //筛选出不被占用的教师工号
    private String receivingNumber() {
        String id;
        //接收用户输入的工号判断学号是否被占用
        while (true){
            System.out.println("输入你要添加的教师工号");
             id = sc.next();
             //调用业务类中的isExists方法判断学号是否被占用
            boolean flog = TeacherService.isExists(id);
            if (flog){
                System.out.println("该工号已被占用，请重新输入");
            }else {
                //退出循环
                break;
            }
        }
        //返回当前工号
        return id;
    }
    //接收用户输入的教师信息
    private Teacher inputInformation(String id) {
        return null;
    }
}
